package cn.dslcode.security.common.util;

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;


/**
 * Cache工具类
 * 
 * @author ThinkGem
 * @version 2013-5-29
 */
public class CacheUtil {

    private static Cache<String, Object> SYS_CACHE = CacheBuilder.newBuilder().maximumSize(100000).weakValues().build();

    /**
     * 获取SYS_CACHE缓存
     * 
     * @param key 键
     * @return 值
     */
    public static Object get(String key) {
        return SYS_CACHE.getIfPresent(key);
    }

    /**
     * 写入SYS_CACHE缓存
     * 
     * @param key 键
     * @param value 值
     */
    public static void put(String key, Object value) {
        SYS_CACHE.put(key, value);
    }

    /**
     * 从SYS_CACHE缓存中移除
     * 
     * @param key 键名
     */
    public static void remove(String key) {
        SYS_CACHE.invalidate(key);
    }

    /**
     * 从缓存中移除全部
     */
    public static void removeAll() {
        SYS_CACHE.invalidateAll();
    }


}
